1. Field of the Invention
This invention relates generally to an improved tool management system for a data processing system; and, more specifically, relates to a system for managing a disparate set of tools that each performs an associated set of operations for processing data objects stored in a object repository, wherein the user interface provided by any of the tools may be used to select a data object and an operation to be executed to process the selected data object, and wherein the selected operation and data object will be routed to another one of the tools for execution automatically if the selected operation is not included in the set of operations provided by the initially-selected tool.
2. Description of the Prior Art
Today""s data processing systems generally include a wide array of software applications and tools for managing, manipulating, creating, cataloging, and searching for data items. A simple example of such a system is the typical personal computer, which may include a first software application adapted for text editing, another application utilized for spread-sheet generation, a third application devoted to the generation of figures and diagrams, and so on. All of these applications may be used at some point to help create a single data item, which in this case may be a document including text, tables, and drawings. To accomplish this, however, the user must first become familiar with each of the tools. The user must also understand which tools are appropriate to accomplish a given task. For instance, a user may be provided a choice between the use of two schematic drawing programs, with the choice being dictated by the data format generated by the programs, and the compatibility of that format with the format used by the other tools. Alternatively, because of specific requirements associated with the data item being processed such as certain formatting requirements, only certain functions provided by a particular application program may be available for use in creating, updating, and/or processing that data item. Gaining this type of knowledge often requires a substantial amount of time and much xe2x80x9ctrial-and-errorxe2x80x9d experimentation.
Another disadvantage of using a disparate set of tools to manage or process a single set of data items involves the often disjointed use of the tool set to accomplish the task at hand. In the current example, for instance, a user may be required to use a first tool to perform a first data entry function on a data item. After this operation is completed, the updated data item must be saved, and a second tool is invoked manually to perform a second operation on that data item. This process may be repeated multiple times using multiple tools, resulting in a time-consuming process.
A more complex example of the problems associated with the use of a disparate tool set to process a common set of data items is provided upon considering an object management system of the type described in the co-pending application entitled xe2x80x9cAn Object Management System Supporting the Use of Application Domain Knowledge Mapped to Technology Domain Knowledgexe2x80x9d, (hereinafter, xe2x80x9cCo-Pending Applicationxe2x80x9d) referenced above. This object management system supports the development and management of object-based, reusable code and data modules of the type commonly used in today""s software development efforts.
As is known in the art, the object-based coding paradigm relies on the development of a base of reusable code and data modules. Cataloging and providing revision control for these components can be a daunting task. This is especially true because of the rapid pace at which computer technology is evolving. Often it is desirable to adapt software applications and repositories residing on one data processing platform so these applications become available from a different platform. Additionally, it may be desirable to xe2x80x9crenovatexe2x80x9d certain code and data modules. A common example of such a renovation effort is the adaptation of code to properly handle dates falling after Dec. 31, 1999 to remedy what has become known as the xe2x80x9cY2K problemxe2x80x9d. Another type of renovation effort is needed to allow for the correct handling of the European Monetary Unit (EMU), or xe2x80x9cEuroxe2x80x9d, which will become the common currency within many European countries within the next few years.
Performing the type of code adaptation and renovation operations described above requires a detailed knowledge of the manner in which the object-based code and data components interrelate. It also requires some way to catalog and track the various revisions of the modules that exist on the system at any given time. The object management system mentioned above provides the ability to catalog the code and data modules and the associated interrelationships in a manner that allows code development tasks to proceed in a much more efficient manner. The details of this object management system are provided in the Co-Pending Application, and in the additional applications cross-referenced above.
The object management system catalogs and tracks code modules and the associated interrelationships by modeling these modules and interrelationships in an object repository. The repository stores objects, wherein ones of the objects referred to as xe2x80x9casset elementsxe2x80x9d each describes and models a respective code or data module. The repository further stores relationships between the objects that each models the relationships existing between the code and/or data modules modeled by the respective objects.
The objects and object relationships stored in the object repository may be viewed using various element and relationship viewing tools provided by the object management system. Some of these viewing tools allow the user to create, delete, and modify the various objects and object relationships. Other automated analysis tools are used to provide insight into the interdependencies existing between the objects. This knowledge is used to understand the interdependencies existing between the code modules stored within the system. Still other tools are used to develop batch-mode scripts that can be executed to invoke certain processing operations on the objects in the repository, or to perform operations on the code and data modules themselves, as is described in detail in the Co-Pending Application. Tools are also provided to execute these batch-mode scripts.
The various tools used to manage the object repository described above each provides a subset of the functions supported by the object management system. To use this tool set effectively, the user must understand which tool is used to accomplish a given task on a given object. This may not always be intuitively obvious, since some of the tools in the tool set provide similar functions, and the decision to use one tool instead of another is based on the type of object being processed. Additionally, each of the tools provides a user interface that may be dissimilar from the user interfaces provided by other tools. Because of these complexities, a substantial amount of time may be required to gain familiarity with this tool set. Moreover, if a user is processing a given object using a series of tool operations, the user may be required to manually invoke various tools in a manner that is cumbersome and time-consuming.
What is needed is a comprehensive tool management system and interface that hides the complexities associated with a disparate set of object management tools. This tool interface should allow any tool operation to be invoked using any tool interface, regardless of whether the invoked operation is actually supported by the tool used to initially invoke the operation. The tool that actually supports the operation should be automatically launched so that the invoked operation may be performed in a manner that is transparent to the user.
It is the primary object of this invention to provide an improved tool management system and interface for a data processing system;
It is another object to provide an improved tool interface for an object management system;
It is a further object to provide a tool management system for managing a disparate set of tools used to manage objects stored in an object repository, wherein each of the tools in the set provides an associated set of functions that may be performed on selected objects in the object repository;
It is another object to provide a tool management system for managing a disparate set of data processing tools, wherein any interface of any tool can be used to select an operation to be performed on a selectable data item stored in the system, and wherein a second tool will be automatically invoked to perform the selected operation if the tool used to make the operation selection does not support that operation;
It is a further object to provide a tool management system for allowing a user to specify a desired data processing task to be performed on a data item, and for automatically invoking tools as those tools are needed to accomplish the desired task in a manner that is transparent to the user;
It is another object to manage a disparate set of tools for a data processing system by modeling those tools using objects stored in an object repository;
It is yet another object to manage a disparate set of tools performing a comprehensive set of data processing operations by modeling the operations as objects stored in an object repository;
It is a further object to manage a set of tools in a manner that allows multiple tools to be active simultaneously in respective windows, and wherein the active window as displayed on a user display may be changed automatically in response to user commands to perform a processing task on a selected data item;
It is yet another object to provide a system for managing a disparate set of tools whereby a user is allowed to utilize any tool interface to view a comprehensive set of the data processing operations provided by all tools in the tool set, whereby the data processing operations are available for processing a selected data item;
It is a further object of the invention to manage a disparate set of tools in a manner that allows each tool to be associated with a default operation that may be invoked using a minimal set of key strokes or other selection operations; and
It is still another object to manage a disparate set of tools performing a comprehensive set of data processing operations by modeling relationships existing between operations and tools performing those operations as relationships between objects in an object repository.
Still other objects and advantages of the present invention will become readily apparent to those skilled in the art from the following detailed description of the preferred embodiment and the drawings, wherein only the preferred embodiment of the invention is shown, simply by way of illustration of the best mode contemplated for carrying out the invention.
The forgoing objects and other objects and advantages are provided in the current invention, which is a management system and interface for a disparate set of tools used to perform data processing tasks on selected groups of data stored within the system. According to one aspect of the invention, a main tool management program provides a menu that allows a user to initiate the execution of any of the tools. Each of the executing tools is launched in a respective window. At any given time, a user may toggle among the windows using keystrokes or point-and-click device operations to select a window populated with a desired tool. Alternatively, a user may launch a tool from the main tool management program, and the newly-created window populated by the launched tool will become the currently-active window.
After a user selects a tool such that the currently-active window displays the selected tool""s interface, the user may further select a task to be performed. This is accomplished by first selecting a data item that is to undergo processing. To facilitate this selection process, each of the tools is provided with a user interface that is capable of displaying a list of predetermined ones of the data items currently stored within the system. The data items included in this list may be files, data objects, meta-data, or any other type of data signal groupings. A series of keystrokes, point-and-click operations, or any other selection mechanism may be used to select the data item that is to become the target of the processing operation.
Next, a user selects the data processing operation that is to be performed on the selected data item. The user interface for the selected tool provides the capability to display a comprehensive list of operations that are available for processing the selected data item. The listed operations include those operations that are supported by the currently-selected tool, as well as those operations that are not supported by that tool.
After the user selects an operation from the displayed operations list, it is determined whether the selected operation is supported by the currently-selected tool. This decision is based, in part, on the type of data item that has been selected. As noted above, according to the preferred embodiment, several tools may be capable of performing similar operations, but each of the tools is designed to perform those operations on different types of data items. Thus the type of data item that is currently selected is used to determine how a selected operation is to be performed. If it is determined that the selected operation is in the set of operations supported by the currently-selected tool, processing of the selected data item is completed. Otherwise, it is determined which of the tools supports the selected operation for the selected data item. Indicators indicative of the selected operation and data item are then routed to the appropriate tool for execution. If the appropriate tool has not yet been launched, a window is opened and populated by the tool, which then performs the selected operation for the selected data item. According to the preferred embodiment, upon the completion of execution for the selected operation, the window for the most-recently invoked tool remains active so that selection of another operation may be performed for the same, or a different, data item.
The tool interfaces and routing function provided by the tool management system allows a user to select an data item to be processed according to a given operation without requiring a user to be familiar with the tools that are available to support a selected data processing operation. Furthermore, the user need not have an understanding of the limitations imposed by a selected data item with regards to the tool selected to perform a given function. Additionally, the user need not have a detailed understanding of the user interface provided by any of the supported tools since operations, once selected, are invoked automatically.
According to another aspect of the invention, the tool management and interface system of the current invention is adapted for use within an object management system used to catalog and track reusable code modules used in software development tasks. The object management system includes an object-based repository that stores objects that each describes and models a respective code or data module. The repository further stores relationships between the objects that each models the relationships existing between the code and/or data modules modeled by the respective objects. The tool management system of the preferred embodiment manages the tool suite provided to manage the objects and object relationships stored in the object repository, wherein the objects are the data items being manipulated by the various operations supported by the tool suite.
In the preferred embodiment of the invention, each of the tools and operations supported by the object management system are modeled as objects in the repository in a manner that is similar to the way in which the code and data modules are modeled in the repository. Relationships are stored in the repository between various ones of the code and data objects and ones of the objects modeling the operations. These relationships provide an indication of those operations that may be performed on the related code and data objects, and are used to generate the operation selection menus provided after the selection of a data item. Likewise, relationships associate each of the objects representing operations with a respective one of the objects representing a tool. These relationships indicate the subset of operations supported by a given tool, and are used in performing the tool routing operations.
According to another aspect of the invention, a default operation may be associated with each of the tools. The default operation is executed when a predetermined keystroke sequence or point-and-click operation is performed while the associated tool is displayed in the currently-active window.
Still other objects and advantages of the present invention will become readily apparent to those skilled in the art from the following detailed description of the preferred embodiment and the drawings, wherein only the preferred embodiment of the invention is shown, simply by way of illustration of the best mode contemplated for carrying out the invention. As will be realized, the invention is capable of other and different embodiments, and its several details are capable of modifications in various respects, all without departing from the invention. Accordingly, the drawings and description are to be regarded to the extent of applicable law as illustrative in nature and not as restrictive.